Testprogramm

Dies ist Teil 2 von 7 der Serie Code Inspector erweitern

Um zu überprüfen, ob unsere Prüfroutine auch funktioniert, benötigen wir ein Testprogramm. In diesem Testprogramm wird ein veralteter BAPI aufgerufen und es wird die Verwendung von BAPI_TRANSACTION_COMMIT “vergessen”. Das Programm ist mit COMMIT lauffähig und legt einen Kundenauftrag an.

Coding

*&———————————————————————*
*& Test-Report für Code Inspector Prüfung
*&———————————————————————*
REPORT  zzcitest.

DATA gv_vbeln      TYPE vbeln.

PARAMETERS p_kunag TYPE kunag  DEFAULT ‘0000002004’.
PARAMETERS p_matnr TYPE matnr  DEFAULT ‘M-10’.
PARAMETERS p_menge TYPE kwmeng DEFAULT ‘1’.
PARAMETERS p_meins TYPE meins  DEFAULT ‘ST’.

START-OF-SELECTION.

  PERFORM createe_order USING p_kunag
                              p_matnr
                              p_menge
                              p_meins
                     CHANGING gv_vbeln.

*&———————————————————————*
*&      Form  create_order
*&———————————————————————*
FORM createe_order USING iv_kunag TYPE kunag
                         iv_matnr TYPE matnr
                         iv_menge TYPE kwmeng
                         iv_meins TYPE meins
                CHANGING cv_vbeln TYPE vbeln.


  DATA ls_order_header_in TYPE                   bapisdhead.
  DATA lt_order_items_in  TYPE STANDARD TABLE OF bapiitemin.
  DATA lt_order_partners  TYPE STANDARD TABLE OF bapipartnr.
  DATA ls_order_items_in  TYPE                   bapiitemin.
  DATA ls_order_partners  TYPE                   bapipartnr.
  DATA ls_return          TYPE                   bapireturn.


*** HEADER DATA
  ls_order_header_in-doc_type   = ‘TA’.
  ls_order_header_in-collect_no = ‘XX’.
  ls_order_header_in-sales_org  = ‘1000’.
  ls_order_header_in-distr_chan = ’12’.
  ls_order_header_in-division   = ’00’.

*** ITEM DATA
  ls_order_items_in-itm_number = 10.
  ls_order_items_in-material   = iv_matnr.
  ls_order_items_in-req_qty    = iv_menge * 1000.
  ls_order_items_in-sales_unit = iv_meins.
  APPEND ls_order_items_in TO lt_order_items_in.

*** PARTNERS
  ls_order_partners-partn_role  = ‘AG’.
  ls_order_partners-partn_numb  = iv_kunag.
  APPEND ls_order_partners TO lt_order_partners.

*** CREATE ORDER
  CALL FUNCTION ‘BAPI_SALESORDER_CREATEFROMDATA’
    EXPORTING
      order_header_in = ls_order_header_in
    IMPORTING
      salesdocument   = cv_vbeln
      return          = ls_return
    TABLES
      order_items_in  = lt_order_items_in
      order_partners  = lt_order_partners.


*** Eigentlich muss der COMMIT nach einem BAPI erfolgen!
*** Zu Testzwecken “vergessen” wir ihn einfach…
*  CALL FUNCTION ‘BAPI_TRANSACTION_COMMIT’.

*** SHOW CREATED ORDER NUMBER
  write: / cv_vbeln.

ENDFORM.                    “change_order

Enno Wulff
Series Navigation<< GrundlagenEigener Hierarchieknoten >>